JavaScript 56.7%
TypeScript 42.6%
1import { NextRequest, NextResponse } from "next/server";2import { prisma } from "@/lib/prisma";3import { loadFileData } from "@/lib/storage";4import { logActivity } from "@/lib/activity";56export async function GET(7 request: NextRequest,8 { params }: { params: { id: string } }9) {10 const file = await prisma.file.findUnique({ where: { id: params.id } });1112 if (!file) {13 return NextResponse.json({ error: "File not found" }, { status: 404 });14 }1516 const data = await loadFileData(file.storagePath, file.isEncrypted);1718 await logActivity("DOWNLOAD", file.id, `Downloaded ${file.name}`);1920 return new NextResponse(new Uint8Array(data), {21 headers: {22 "Content-Type": "application/octet-stream",23 "Content-Disposition": `attachment; filename="${encodeURIComponent(file.name)}"`,24 "Content-Length": String(data.length),25 },26 });27}28